package com.lagou.task09;

public /*final*/ abstract class Account {
    private int money;

    public Account() {
    }

    public Account(int money) {
        setMoney(money);
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        if(money >= 0) {
            this.money = money;
        } else {
            System.out.println("金额不合理哦");
        }
    }
    // 自定义抽象方法实现计算利息并返回的功能描述
    public abstract double getLixi();
    // private 和 abstract关键字不能共同修饰一个方法
    // 因为子类不能继承父类的只有两个：构造方法和私有方法，所以私有方法无法继承，更何况重写呢
    // 抽象方法如果不能被子类重写，自己又没有方法体，就没有意义了
    // private abstract double getLixi();


    // final 和 abstract 关键字不能共同修饰一个方法
    // final不能被重写，可以被继承，abstract没有方法体，被重写之后才能使用，矛盾了
//    public final abstract double getLixi();
    // 抽象类不能new对象，防止程序员使用new出来的对象来调用抽象方法，抽象方法是没有方法体的
    // 在abstract前面加static表示将抽象方法提升到类层级，可以使用类名.来调用该方法，abstract不能new对象的意义就不复存在了
    // public static abstract double getLixi();


}
